import os
from lex_csh import tokens
from lex_ocl import tokens
import yacc_csh as csh
import yacc_ocl as  ocl

os.system('yacc_csh.py')
os.system('yacc_ocl.py')

uml=ocl.ejecutar()


clases_uml=uml.clases
clases_csh= csh.Parser_csh.clases

print clases_csh

a=False
b=False
resultado=False

for i in clases_uml.keys():
    if i in clases_csh.keys():
        if clases_uml[i].padre==clases_csh[i].padre:
            for o in clases_uml[i].atributos.keys():
                if o in clases_csh[i].atributos.keys():
                    if clases_uml[i].atributos[o].tipo==clases_csh[i].atributos[o].tipo:
                        a=True
                    
        for o in clases_uml[i].metodos.keys():
            if o in clases_csh[i].metodos.keys():
                for u in clases_uml[i].metodos[o].parametros.keys():
                    if u in clases_csh[i].metodos[o].parametros.keys():
                        if clases_uml[i].metodos[o].parametros[u].tipo== clases_csh[i].metodos[o].parametros[u].tipo:
                            b=True
    
    resultado=a and b                 




if(resultado):
    print "UML = a C#"
else:
    print "UML no coincide con C#"


print "Test unitarios generados"



